package filter;

import interfaces.Readable;
import interfaces.Writeable;
import pipe.Pipe;

public abstract class Sink<T> implements Writeable<T>, Runnable{

	protected Pipe<T> input;
	
	public Sink(Pipe<T> input){
		this.input = input;
	}
	
    public void run() {
    	takeForm(input);
            
    }
    
    public abstract void takeForm(Pipe<T> pipe);    	
    	
    }
    
    

